<?php
namespace app\Home\controller;

//公共控制器
use app\common\controller\Homecontroller;

// 导入Cookie
use think\Cookie;

class Collect extends Homecontroller {
    public function __construct() {
        // 手动把父类的方法获取过来
        parent::__construct();
        $this->UserModel = model( 'User.User' );
        $this->PostModel = model( 'Post.Post' );
        // $this->CommentModel = model( 'Post.Comment' );
        $this->CollectModel = model( 'User.Collect' );
    }

    // 添加收藏

    public function add() {
        if ( $this->request->isPost() ) {

            // 信息提示
            $success = [
                'result' => false,
                'msg' => '',
            ];

            $postId = $this->request->param( 'postid' );

            // 获取帖子的全部信息
            $postinfo = $this->PostModel->find( $postId );

            // 判断是否这帖子
            if ( !$postinfo ) {
                $success[ 'msg' ] = '没有帖子！';
                $this->error( '没有帖子！' );
                exit;
            }

            // 获取用户id
            $userId = $this->LoginUser[ 'id' ];

            $userinfo = $this->UserModel->find( $userId );

            // 判断有没有这个人
            if ( !$userinfo ) {
                $success[ 'msg' ] = '没有这个人！';
                $this->error( '没有这个人！' );
                exit;
            }

            // 组装post表的数据
            $data = [
                'userid' => $userId,
                'postid' => $postId,
            ];

            // 判断当前用户有没有收藏过
            $collect = $this->CollectModel->where( $data )->find();

            if ( $collect ) {
                $success[ 'result' ] = false;
                $success[ 'msg' ] = '您已收藏此贴，无需重复收藏！';
                return json( $success );
            }

            // 收藏表插入数据
            $result = $this->CollectModel->save( $data );

            if ( $result === false ) {
                // 删除失败
                $success[ 'msg' ] = $this->PostModel->getError();
            } else {
                // 删除成功
                $success[ 'result' ] = true;
                $success[ 'msg' ] = '收藏成功！';
            }
            return json( $success );

        }
    }

    // 取消收藏

    public function del() {
        if ( $this->request->isPost() ) {

            // 信息提示
            $success = [
                'result' => false,
                'msg' => '',
            ];

            $postId = $this->request->param( 'postid' );

            // 获取帖子的全部信息
            $postinfo = $this->PostModel->find( $postId );

            // 判断是否这帖子
            if ( !$postinfo ) {
                $success[ 'msg' ] = '没有帖子！';
                $this->error( '没有帖子！' );
                exit;
            }

            // 获取用户id
            $userId = $this->LoginUser[ 'id' ];

            $userinfo = $this->UserModel->find( $userId );

            // 判断有没有这个人
            if ( !$userinfo ) {
                $success[ 'msg' ] = '没有这个人！';
                $this->error( '没有这个人！' );
                exit;
            }

            // 组装post表的数据
            $data = [
                'userid' => $userId,
                'postid' => $postId,
            ];

            // 判断当前用户有没有收藏过
            $collect = $this->CollectModel->where( $data )->find();

            if ( !$collect ) {
                $success[ 'result' ] = false;
                $success[ 'msg' ] = '您没收藏这个帖子，去收藏！';
                return json( $success );
            }

            // 收藏表插入数据
            $result = $this->CollectModel->where( [ 'id' => $collect[ 'id' ] ] )->delete();

            if ( $result === false ) {
                // 删除失败
                $success[ 'msg' ] = $this->PostModel->getError();
            } else {
                // 删除成功
                $success[ 'result' ] = true;
                $success[ 'msg' ] = '取消收藏成功！';
            }
            return json( $success );

        }
    }

}
?>